<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1,Promise代表一个异步操作
        // 2,new Promise()时,要传递一个实参,这个实参是回调函数,这个函数会立即执行
        // 3,在回调函数中,内部一般是异步代码
        // 4,Promise的原型上有一些方法,这些方法是可以被实例调用 then catch finaily
        //    then catch 都是事件循环的微任务
        // 5,.then方法的第一个参数(函数)会传递给resolve,第二个参数(函数)会传递给reject


        // Promise的实例的状态
        // 1,等待 pending
        // 2,成功 fulfilled
        // 3,失败 rejected
    //    let p = new Promise(function(resolve,reject){
            // console.log(123)
            // 异步代码

            // 成功时:
            // resolve()
            // 失败时:
            // reject()
        // })
        // console.log(p)
        // p.then(function(){'成功'},function(){'失败'})
        //     p.then(function(){'成功'}).catch(function(){'失败'}) //穿透错误法,
    
    // Promise的静态方法
    // 静态方法:将方法挂载到函数上,这个方法可以称为静态方法(成员)
    Promise.all()
    Promise.race()
     
    // Promise.reject() 相当于 p = new Promise(function(resolve,reject){ reject() })
    // Promise.reject() => p = new Promise(function(resolve,reject){ reject() })

    // Promise.resolve()相当于 p = new Promise(function(resolve,reject){ resolve() })
    // Promise.resolve() => => p = new Promise(function(resolve,reject){ resolve() })
    let p = new Promise(function(resolve,reject){
        reject('失败')
    })
     p.catch(function(err){
         console.log(err);
     })


    </script>
</body>
</html>